gtkmain: Handle rewriting of event fields during grabs for touchpad events
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 9 Jul 2015 16:47:02 +0000 (18:47 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 12 Aug 2015 21:20:24 +0000 (23:20 +0200)
The window/coordinates will need translation in the case of touchpad gesture
events, same than with other pointer events.

gtk/gtkmain.c

index 25fef1cfdfce8b3ab8fda256e18892d4c51f9a65..dfb6d9b5e65955871ba07477d55c83c0c5bc95a3 100644 (file)
@@ -1411,6 +1411,18 @@ rewrite_event_for_window (GdkEvent  *event,
                                 new_window,
                                 &event->touch.x, &event->touch.y);
       break;
+    case GDK_TOUCHPAD_SWIPE:
+      rewrite_events_translate (event->any.window,
+                                new_window,
+                                &event->touchpad_swipe.x,
+                                &event->touchpad_swipe.y);
+      break;
+    case GDK_TOUCHPAD_PINCH:
+      rewrite_events_translate (event->any.window,
+                                new_window,
+                                &event->touchpad_pinch.x,
+                                &event->touchpad_pinch.y);
+      break;
     case GDK_KEY_PRESS:
     case GDK_KEY_RELEASE:
     case GDK_PROXIMITY_IN:
@@ -1460,6 +1472,8 @@ rewrite_event_for_grabs (GdkEvent *event)
     case GDK_TOUCH_UPDATE:
     case GDK_TOUCH_END:
     case GDK_TOUCH_CANCEL:
+    case GDK_TOUCHPAD_SWIPE:
+    case GDK_TOUCHPAD_PINCH:
       display = gdk_window_get_display (event->any.window);
       device = gdk_event_get_device (event);
 
@@ -1819,6 +1833,8 @@ gtk_main_do_event (GdkEvent *event)
     case GDK_TOUCH_UPDATE:
     case GDK_TOUCH_END:
     case GDK_TOUCH_CANCEL:
+    case GDK_TOUCHPAD_SWIPE:
+    case GDK_TOUCHPAD_PINCH:
       if (!_gtk_propagate_captured_event (grab_widget, event, topmost_widget))
         gtk_propagate_event (grab_widget, event);
       break;